(function() {
	var ents		 = $("[data-ent]"),						//弹出层入口
		tips		 = $("[data-tip]"),						//提示框入口
		layer		 = $(".layer"),							//弹出层
		dialogs		 = $(".layer .dialog"),					//会话框
		actions		 = $(".layer .dialog [data-action]"),	//对话框操作入口
		tipShowTime	 = 3000;								//提示框展示时间
	
	/************************设置会话框核心区域最大高度************************/
	dialogs.each(function() {
		var showHeight	 = layer.outerHeight()*0.8,
			dialogHeight = $(this).outerHeight(),
			innerHeight	 = $(this).children("[data-overflow='scroll']").outerHeight(),
			inner		 = $(this).children("[data-overflow='scroll']");
		if (dialogHeight > showHeight) {
			inner.attr("style", 
				"height: " + (showHeight-(dialogHeight-innerHeight))/parseFloat($("html").css("font-size")) + "rem; " +
				"overflow: auto; " +
				"-webkit-overflow-scrolling: touch;"
			);
		}
	});
	
	/************************点击空白处隐藏弹出层************************/
	layer.click(function() {
		$(this).children(".dialog.show").removeClass("show");
		layer.removeClass("show");
	});
	layer.children(".dialog").on("click", function(e) {
		e.stopPropagation();
	});

	/************************打开弹出层************************/
	ents.on("click", function() {
		if (ents.attr("data-ent") != undefined) {
			layer.addClass("show");
			$("#"+$(this).data("ent")).addClass("show");
			return false;
		}
	});

	/************************打开提示框************************/
	tips.on("click", function() {
		var thisTip = $("#"+$(this).data("tip")),
			delay 	= 500;
		
		$(".dialog.show").removeClass("show");
		layer.removeClass("show");
		setTimeout(function() {
			thisTip.addClass("show");
		}, delay);
		setTimeout(function() {
			thisTip.removeClass("show");
		}, tipShowTime + delay);
		
		return false;
	});
	
	/************************组件操作************************/
	actions.on("click", function() {
		
		//关闭弹出层
		if ($(this).data("action") == "close") {
			$(this).parents(".dialog").removeClass("show");
			layer.removeClass("show");
		
		//关闭入口
		} else if ($(this).data("action") == "removeEnt") {
			var pid = $(this).parents(".dialog").attr("id");
			$("[data-ent='" + pid + "']").removeAttr("data-ent");
			$(this).parents(".dialog").removeClass("show");
			layer.removeClass("show");
			
		//其它情况
		} else {
			alert("参数错误！");
		}
		
		return false;
	});
})();
